상세 설계 원리
JeongSeulho
2023년 04월 30일
준비중...
클립보드로 복사
📌step-wise refinement
- 큰 흐름, 단계부터 정하면서 세부적으로 설계하는 것
- 먼저 큰 3단계로 구분하고
- 각 단계를 세분화
📌Abstraction(추상화)
- 중요한 것은 드러나도록, 세부적이거나 중요하지 않은 것은 숨긴다
📖Procedural abstractions
- procedural interface를 보여준다(큰 흐름)
- prodecural의 내부 알고리즘은 숨긴다
📖Data abstractions(캡슐화)
- data에대해 허용된 operations/inerfaces를 보여준다
- data의 타입은 숨긴다(array, map, linked list 등)
- class에서
private 멤버변수
를public 메소드
를 이용하여 연산 하는 것
📌Modularization
📖Coupling(결합도)
- 모듈끼리 얼마나 의존적인가
- weak=good / strong=bad, 의존적이면 하나의 모듈로 만드는게 만드는 것을 고려
결합 레벨
- 어느정도 결합되어 있는가 위에 있는 것이 weak, 잘 모듈화 되어있는 것
📖Cohension(응집도)
- 하나의 모듈에 코드들이 서로 관계가 있는 것들이 모여있는가?
- 하나의 모듈에 여러 기능들이 섞여있지는 않은가?
- strong=good / weak=bad
응집도 레벨
- 어느정도 응집되어 있는가 위에 있는 것이 strong, 잘 응집되었는 것